	import { defineStore } from 'pinia'
	import { ref } from 'vue'
	import { TUser } from '../../Types/user'

	// 命名规范：use+名称+Store   第一个参数为唯一标识
	export const useUserStore = defineStore(
		'sms-user',
		() => {
			const userInfo = ref()
			// 是否首次访问（用于加载动态路由）
			const isFirstVisit = ref(true)
			// 路由是否已加载完成
			const routesLoaded = ref(false)

			// 设置登录信息
			const setUserInfo = (newData: TUser) => {
				userInfo.value = newData
			}

			// 移除登录信息
			const removeUserInfo = () => {
				userInfo.value = undefined
				// 重置路由加载状态
				routesLoaded.value = false
			}

			// 设置首次访问状态
			const setFirstVisit = (status: boolean) => {
				isFirstVisit.value = status
			}

			// 设置路由加载状态
			const setRoutesLoaded = (status: boolean) => {
				routesLoaded.value = status
			}

			// 暴露
			return {
				userInfo,
				isFirstVisit,
				routesLoaded,
				setUserInfo,
				removeUserInfo,
				setFirstVisit,
				setRoutesLoaded
			}
		},
		{
			persist: true // 开启持久化，token
		}
	)
